name: Pre-release master

on:
  workflow_dispatch:
    inputs:
      number:
        type: number
        required: true

env:
  OTP_VERSION: '25.2.1'
  ELIXIR_VERSION: '1.14.5'

jobs:
  push_to_registry:
    name: Push Docker image to Docker Hub
    runs-on: ubuntu-latest
    env:
      RELEASE_VERSION: 5.3.3
    steps:
      - name: Check out the repo
        uses: actions/checkout@v4

      - name: Set up Docker Buildx
        uses: docker/setup-buildx-action@v3

      - name: Log in to Docker Hub
        uses: docker/login-action@v2
        with:
          username: ${{ secrets.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Extract metadata (tags, labels) for Docker
        id: meta
        uses: docker/metadata-action@v5
        with:
          images: blockscout/blockscout

      - name: Build & Push Docker image
        uses: docker/build-push-action@v5
        with:
          context: .
          file: ./docker/Dockerfile
          push: true
          cache-from: type=registry,ref=blockscout/blockscout:buildcache
          cache-to: type=registry,ref=blockscout/blockscout:buildcache,mode=max
          tags: blockscout/blockscout:latest, blockscout/blockscout:${{ env.RELEASE_VERSION }}-alpha.${{ inputs.number }}
          platforms: |
            linux/amd64
            linux/arm64/v8
          build-args: |
            CACHE_EXCHANGE_RATES_PERIOD=
            API_V1_READ_METHODS_DISABLED=false
            DISABLE_WEBAPP=false
            API_V1_WRITE_METHODS_DISABLED=false
            CACHE_TOTAL_GAS_USAGE_COUNTER_ENABLED=
            ADMIN_PANEL_ENABLED=false
            DECODE_NOT_A_CONTRACT_CALLS=false
            MIXPANEL_URL=
            MIXPANEL_TOKEN=
            AMPLITUDE_URL=
            AMPLITUDE_API_KEY=
            CACHE_ADDRESS_WITH_BALANCES_UPDATE_INTERVAL=
            BLOCKSCOUT_VERSION=v${{ env.RELEASE_VERSION }}-beta
            RELEASE_VERSION=${{ env.RELEASE_VERSION }}